The present invention generally relates to a system and method for compressing data in a communication channel and, more particularly, to a system and method of compressing data in a communication channel utilizing time coding whereby blocks of data can be encoded according to the time of arrival of such data blocks at a receiving end of the communication channel and/or the time interval between the received data blocks.
Data compression on a communication channel is a process of finding the most efficient representation of an information source in order to minimize communication time on such channel. In the field of communications, the amount of data which can be transmitted through a given communication channel (i.e., the quantity of informational units which can be transmitted per a unit time) is limited by the capacity of such channel to transmit information. See, generally, Shannon, C. E., 1948, "A Mathematical Theory of Communication," Bell System Technical Journal, vol 27, pp. 379-423 and 623-656. In order to transmit more data through a particular channel, various data compression techniques are employed to transmit compressed strings of data which, upon reception, can be constructed into their original form. Consequently, the more data is compressed, the greater the quantity of data that can be transmitted over a communication channel per unit time.
Conventional methods of compressing of data in a communication channel present challenging problems. For example, in many applications, the data arrives at the input of a communication channel in an uncompressed format and must be compressed dynamically in real time before such data is transmitted through the communication channel. Further, the transmitted data must be dynamically decompressed on the receiving end of the transmission channel. Such dynamic compression/decompression of data can be extremely time consuming, which essentially offsets the advantage of shorter transmission time which is obtained by data compression in a communication channel.
For example, one of most well-known conventional text data compression techniques used for computer storage, as well as telecommunications, is the Huffman Coding technique. The underlying principle of Huffman Coding data compression technique is that frequently used characters can be coded by shorter data bit strings than infrequently used characters. This method requires the processing of large quantities data to produce statistical distributions of symbols before data compression can be performed. The estimation of statistical characteristics of the data is a time consuming process, especially when the data is not homogeneous (i.e., different blocks of data have different statistical characteristics which requires further estimation of the statistical characteristics for such new data).
Similar problems exist with other conventional data compression techniques such as the Ziv-Lempbel Coding technique and Arithmetic Coding. Such techniques compress input data that is related to a model that is constructed from data that was previously encoded. A detailed description of the above data compression techniques of Huffman Coding, Ziv-Lempbel, Variable Length Coding and Arithmetic Coding can be found in Ian H. Witten, et al., "Managing Gigabits," Van Nostrand Reinhold, New York, 1994. Further, in certain situations, it is often desirable to compress data that has already been compressed before transmission through a communication channel since alternative solutions (such as the addition of more channels with which to process the added information) are expensive.
Such problems are typically resolved through a coding technique that is based on internal characteristics of the data to be encoded. The data compression methods described above are based solely on structural characteristics (i.e, space characteristics) of data. Specifically, such methods do not systematically use other physical parameters to compress the data for transmission through a communication channel. The purpose of the present invention is to systematically exploit other physical parameters, i.e. time, to encode the structural characteristics of the data to be transmitted over a communication channel.
There are conventional methods that utilize time coding for transmitting data over a communication channel, but such methods do not involve increasing the transmission capacity through data compression. For example, Time Multiplexing is a method that allows the sharing of a transmission medium by establishing a sequence of time slots during which individual sources can transmit signals, whereby the entire bandwidth of the transmission medium is periodically available to each user for a restricted time interval. Time Multiplexing allows, for example, several persons to speak on a telephone through the same communication channel. Although the method of Time Multiplexing utilizes time characteristics for transmitting data over a communication channel, such method, however, does not employ data compression to increase the capacity of data which can be transmitted over the communication channel per unit time (i.e., data is not processed faster via time multiplexing).
Another well-known conventional method utilizing time encoding is Morse Code. Specifically, Morse Code is transmitted by sending pulses of current which generate points and dashes (representing letters) with prolonged time delays after each letter in a string in order to separate the letters. Such time coding (i.e., time delay) only serves to represent a symbol or a letter, and does not provide for data compression. Actually, it leads to an increase in the processing time of textual data since it requires too many time delays (i.e., a delay after each letter of a word).